package client.comunicaciones;

import java.net.MalformedURLException;
import java.rmi.RemoteException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.util.Vector;

import server.comunicaciones.IServer;
import client.presen.IVentanaJugador;


public class Proxy {
	
	private IVentanaJugador ventanaJugador;
	protected Jugador jugador;

	public Proxy(String nombre, IVentanaJugador ventana) throws MalformedURLException, RemoteException, AlreadyBoundException {
		this.ventanaJugador=ventana;
		this.jugador=new Jugador(nombre, this.ventanaJugador);		
	}

	public Jugador getJugador() {
		return jugador;
	}

	public void setJugador(Jugador jugador) {
		this.jugador = jugador;
	}

    protected IServer server;

    public IServer getSudokuServer() {
        return server;
    }

    public void setSudokuServer(IServer sudokuServer) {
        this.server = sudokuServer;
    }

    public void conectar(String ip, String puerto) throws MalformedURLException, RemoteException, NotBoundException {
    
    		String url="rmi://" + ip + ":" + puerto + "/server";
    		this.server=(IServer) Naming.lookup(url);
    }

    //getkenkenes
   /* public Vector<String> getSudokus() throws Exception {
    	this.server.
        return this.server.getSudokus();
    }

	
	//getKenken()
	public String getSudoku(String idSudoku) throws Exception {
		return this.server.getSudoku(this.jugador, idSudoku, this.jugador.getNombre());
	}

	//CREO QUE HAY QUE DIFERENCIAR ENTRE PONER, QUITAR Y GUARDAR EN SUDOKU O EN KENKEN	
	public void poner(String id, byte idCuadricula, byte numero, byte fila, byte columna) throws RemoteException {
		this.server.poner(id, idCuadricula, fila, columna, numero);
	}
		
	public void quitar(String id, byte idCuadricula, byte fila, byte columna) throws RemoteException {
		this.server.quitar(id, idCuadricula, fila, columna);
	}

	public void guardar(String sudoku) throws Exception { //Como ambos son string puede servir para los dos
		this.server.guardar(sudoku);
	}*/
}
